home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
351-375
/
disk_361
/
xcolor-lib
/
xcolor-library.dok
< prev
next >
Wrap
Text File
|
1992-05-06
|
14KB
|
640 lines
XCOLOR-LIBRARY
Autor : Roger Fischlin
Steigerwaldweg 6
6450 Hanau 7
BR Deutschland
Tele.: (06181) 650266
Allgemeines
Die XColor-Library stellt einige Funktionen rund um Farben
dem Programmierer zur Verfügung, u.a. sogar einen Colour-
Requester.
Fast alle Funktionen nehmen die Änderungen direkt in der ColorMap
vor, so daß , damit die Farbänderung sichtbar werden,
RemakeDisplay (Intuition-Library) aufgerufen werden muß. Dies
hat zwei Gründe :
· RemakeDisplay ist multitasking-feindlich !
· Alle Änderungen werden auf einmal sichtbar !
Haben Sie die XColor-Library geöffnet, so erhalten Sie auch die
Zeiger auf die Graphics- , FFP- und Intuition-Library, die in der
XColor-Library-Basis-Struktur vermerkt sind.
Copyright :
Die XColor-Library ist kein Public Domain, das Copyright liegt
beim Autor, Roger Fischlin. Die XColor-Library darf aber auf
PD-Disketten verbreitet werden, wenn
· kein Gewinn erwirtschaftet wird !!!!
· keinerlei Änderungen vorgenommen wurden !
Sie können also bei einem PD-Programm die XColor-Library mit-
liefern, dieser Text muß nicht enthalten sein.
Diese Library darf auch in Verbindung mit kommerzieller Software
vertrieben werden, wenn
· keinerlei Änderungen vorgenommen wurden !
· diese, unveränderte Textdatei auch enthalten ist !
Bugs / Fehler :
Sollten Fehler der Library beim Arbeiten mit ihr auftreten, so
bin ich an exakten Fehlerberichten interessiert.
Anleitung zum Gebrauch des ColourRequesters
Da die meisten Funktion klar sein dürften, so beschränke ich mich
auf vier Besonderheiten :
1. RGB <-> HSV
Durch Anklicken von RGB / HSV kann zwischen RGB- und HSV-Farb-
bestimmung umgeschaltet werden.
2. hex <-> dezimal
bei RGB-Wert kann durch Anklicken der Werte zischen hexadezimaler
und dezimaler Darstellung umgeschaltet werden, der Farbindex wird
dann auch in hexadizimaler (aber ohne $-Zeichen) bzw. dezimaler
Schreibweise dargestellt.
3. Über dem Farbindex (linke Seite) findet sich das Undo-Gadget für
die dargestellte Farbe.
4. Alle Funktionen (COPY, SPREAD, EXCHANGE) können durch erneute
Anwahl abgebrochen werden.
Colour <-> Color
Bei der Entwicklung habe ich statt dem amerikanischen Color das
englische Colour verwendet. Da aber amerikanische Schreibweisen
auf dem Amiga üblich sind, habe ich Color ergänzt.
Funktionen der XColor-Library :
CheckColour
Funktion : CheckColour
Offset : -30
Parameter : d0 - Farberegister
a0 - ^ViewPort
Ergebnis : 1 - EHB-Farbe
0 - Standardfarbe
-1 - existiert nicht
Erläuterungen: Diese Funktion liefert die Art der Farbe eines
Farberegisters.
ReadRGB4
Funktion : ReadRGB4
Offset : -36
Parameter : d0 - Farberegister
a0 - ^ViewPort
Ergebnis : RGB - Farbwert als Word
-1 - Farberegister existiert nicht
Erläuterungen: Diese Funktion liefert die Farbe des Registers als
RGB-Word. Dieses Word ist wie folgt zusammengesetzt:
(R * 2^8) + (G * 2^4) + B
Handelt es sich bei dem Register um eine EHB-Farbe,
so wird auch nur die Farbe mit der halben Helligkeit
als Ergebnis zurückgegeben.
Querverweis : WriteRGB4
WriteRGB4
Funktion : WriteRGB4
Offset : -42
Parameter : d0 - Farberegister
d1 - RGB-Wert als Word
a0 - ^ViewPort
Ergebnis : 0 - OK
-1 - Farberegister existiert nicht
Erläuterungen: Diese Funktion überträgt den Farbwert in der ColorMap
des ViewPorts.
Handelt es sich bei dem Register um eine EHB-Farbe,
so wird die Helligkeit verdoppelt und der neue RGB-
Wert ins entsprechende Register übertragen, damit die
EHB-Farbe den angegebenen RGB-Wert erhält.
Da der Wert direkt in die ColorMap übertragen wird,
muß, bevor die Änderungen sichtbar wird, RemakeDisplay
(Intuition-Library) aufgerufen werden.
Querverweis : ReadRGB4
ColorMapAddress
Funktion : ColorMapAddress
Offset : -48
Parameter : d0 - Art der Struktur
a0 - ^Struktur
Ergebnis : <>0 - Zeiger auf ColorMap
0 - falsche Strukturart
Erläuterungen: Diese Funktion ermittelt den Zeiger auf die ColorMap.
Als Ausgangsbasis können drei Strukturen dienen, die
Art der verwendeten muß auch übergeben werden :
0 : ViewPort
1 : Window
2 : Screen
ExchangeColours
Funktion : ExchangeColours
Offset : -54
Parameter : d0 - Farberegister #1
d1 - Farberegister #2
a0 - ^ViewPort
Ergebnis : 0 - OK
-1 - Farberegister existiert/existieren nicht,
oder es handelt sich um eine EHB- und eine
normales Register.
Erläuterungen: Diese Funktion vertauscht zwei Einträge der Color-
Map des ViewPorts.
Handelt es sich bei beiden Registern um eine EHB-
Farben, so werden die zugehörigen unteren Farb-
register vertauscht.
Da nur die ColorMap verändert wird, muß die Copper-
List mit RemakeDisplay (Intuition-Library) neu
aufgebaut werden, bevor die Farbänderung sicht-
bar wird.
Querverweis : CopyColours, SpreadColours
CopyColours
Funktion : CopyColours
Offset : -60
Parameter : d0 - Farberegister #1 ( Quelle )
d1 - Farberegister #2 ( Ziel )
a0 - ^ViewPort
Ergebnis : 0 - OK
-1 - Farberegister existiert/existieren nicht,
oder es handelt sich um eine EHB- und eine
normales Register.
Erläuterungen: Diese Funktion kopiert den RGB-Wert eines Registers
in ein anderes der ColorMap des ViewPorts.
Handelt es sich bei beiden Registern um EHB-
Farben, so werden die zugehörigen unteren Farb-
register übertragen.
Da nur die ColorMap verändert wird, muß die Copper-
List mit RemakeDisplay (Intuition-Library) neu
aufgebaut werden, bevor die Farbänderung sicht-
bar wird.
Querverweis : ExchangeColours, SpreadColours
SpreadColours
Funktion : SpreadColours
Offset : -66
Parameter : d0 - Farberegister #1
d1 - Farberegister #2
a0 - ^ViewPort
Ergebnis : 0 - OK
-1 - Farberegister existiert/existieren nicht,
oder es handelt sich um eine EHB- und eine
normales Register.
Erläuterungen: Diese Funktion bildet einen weichen Übergang zwischen
den beiden Farbregistern der ColorMap des ViewPorts.
Handelt es sich bei beiden Registern um EHB-
Farben, so werden die zugehörigen unteren Farb-
register bearbeitet.
Da nur die ColorMap verändert wird, muß die Copper-
List mit RemakeDisplay (Intuition-Library) neu
aufgebaut werden, bevor die Farbänderung sicht-
bar wird.
Querverweis : ExchangeColours, CopyColours
ColourDepth
Funktion : ColourDepth
Offset : -72
Parameter : a0 - ^Screen
Ergebnis : Tiefe - Tiefe des Screens, bei HAM-Modus 4 und bei
EHB-Mode 6.
Erläuterungen: Diese Funktion liefert die den Logarithmus der
Anzahl der Farbregister zur Basis 2.
Querverweis : ColourNumber
ColourNumber
Funktion : ColourNumber
Offset : -78
Parameter : a0 - ^Screen
Ergebnis : Anzahl- Anzahl der Farbregister eines Screens,
bei HAM-Modus 16 und bei EHB-Modus 64.
Erläuterungen: Diese Funktion liefert die Anzahl der Farbregister.
Querverweis : ColourDepth
MakeAntique
Funktion : MakeAntique
Offset : -84
Parameter : d0 - Farberegister
d1 - Anzahl der Register
a0 - ^ViewPort
Ergebnis : 0 - OK
-1 - Farberegister existiert/existieren nicht.
Erläuterungen: Diese Funktion wandelt die die gegebene Anzahl von
Farben ab dem gegebenen Register in antikes Aus-
sehen um.
Da nur die ColorMap verändert wird, muß die Copper-
List mit RemakeDisplay (Intuition-Library) neu
aufgebaut werden, bevor die Farbenänderung sicht-
bar wird.
Querverweis : MakeBW
MakeBW
Funktion : MakeBW
Offset : -90
Parameter : d0 - Farberegister
d1 - Anzahl der Register
a0 - ^ViewPort
Ergebnis : 0 - OK
-1 - Farberegister existiert/existieren nicht.
Erläuterungen: Diese Funktion wandelt die die gegebene Anzahl von
Farben ab dem gegebenen Register in Schwarz-Weiß
um.
Da nur die ColorMap verändert wird, muß die Copper-
List mit RemakeDisplay (Intuition-Library) neu
aufgebaut werden, bevor die Farbänderung sicht-
bar wird.
Querverweis : MakeAntique
CopyToBuffer
Funktion : CopyToBuffer
Offset : -96
Parameter : d0 - Farberegister
d1 - Anzahl
a0 - ^ViewPort
a1 - ^Puffer
Ergebnis : Anzahl- Anzahl der übertragenen Farbwerte
Erläuterungen: Diese Funktion kopiert Farbeinträge der ColorMap des
ViewPorts in den Puffer.
Da nur die ColorMap verändert wird, muß die Copper-
List mit RemakeDisplay (Intuition-Library) neu
aufgebaut werden, bevor die Farbänderung sicht-
bar wird.
Querverweis : CopyToColorMap
CopyToColorMap
Funktion : CopyToColorMap
Offset : -102
Parameter : d0 - Farberegister
d1 - Anzahl
a0 - ^ViewPort
Ergebnis : Anzahl- Anzahl der übertragenen Farbwerte
Erläuterungen: Diese Funktion kopiert die Farbwerte aus dem Puffer
in die Register der ColorMap des Viewportes ab dem
gegebenen Register.
Querverweis : CopyToBuffer
HSVtoRGB
Funktion : HSVtoRGB
Offset : -108
Parameter : d0 - H ($0000-$ffff)
d1 - S ($0000-$ffff)
d2 - V ($0000-$ffff)
Ergebnis : RGB - RGB-Wert des HSV-Wertes (als Word).
Erläuterungen: Diese Funktion ermitellt den RGB-Wert zu einen HSV-
Wert. Viele Malprogrammen (z.B. DPaint) haben neben
RGB-Schiebereglern auch HSV-Schieberegler zur Farb-
bestimmung.
Querverweis : RGBtoHSV
RGBtoHSV
Funktion : RGBtoHSV
Offset : -114
Parameter : d0 - RGB als Word
a0 - ^Puffer (3 Longwords=12 Bytes)
Ergebnis : - HSV-Werte als Longword im Puffer
Erläuterungen: Diese Funktion ermitellt den HSV-Wert zu einen RGB-
Wert. In dem Puffer finden sich dann die HSV-Werte
getrennt als Longwords ($0000-$ffff).
Querverweis : HSVtoRGB
ColourRequester
Funktion : ColourRequester
Offset : -120
Parameter : a0 - ^ColourRequester-Struktur
Ergebnis : 0 - OK
<0 - Fehler
Erläuterungen: Die ColourRequester-Funktion stellt jedem
Programmierer einen Palette zum Verändern
der Farben zur Verfügungung. Durch eine Viel-
zahl von Optionen und Einsprungsvektoren
kann jeder den Requester seinen Wünschen
anpassen.